package com.gitee.fsmxm.thinking.in.concurrent.basic;

/**
 * synchronized 使用的方式
 */
public class _02_Synchronized_Usage {


    // 修饰非静态方法
    synchronized void foo() { // 同于 synchronized (this) {}
        // 临界区
    }

    // 修饰静态方法
    synchronized static void bar() {  // 同于 synchronized (xxx.class) {}
        // 临界区
    }

    // 修饰代码块
    Object lock = new Object();

    void baz() {
        synchronized (lock) {
            // 临界区
        }
    }

}
